package com.joolun.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.joolun.common.annotation.Excel;
import com.joolun.common.core.domain.BaseEntity;
import lombok.Data;

import java.util.Date;

/**
 * 企业微信客户详情信息对象 scrm_customer_info
 * 
 * @author joolun
 * @date 2025-03-26
 */
@Data
public class ScrmCustomerInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 'ID' */
    private Integer id;

    /** 外部企业ID */
    @Excel(name = "外部企业ID")
    private String extCorpId;

    /** 创建者外部员工ID */
    @Excel(name = "创建者外部员工ID")
    private String extCreatorId;

    /** 微信客户ID */
    @Excel(name = "微信客户ID")
    private String extCustomerId;

    /** 微信员工ID */
    @Excel(name = "微信员工ID")
    private String extStaffId;

    /** 年龄 */
    @Excel(name = "年龄")
    private Long age;

    /** 描述 */
    @Excel(name = "描述")
    private String description;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 电话 */
    @Excel(name = "电话")
    private String phoneNumber;

    /** qq */
    @Excel(name = "qq")
    private String qq;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 生日 */
    @Excel(name = "生日")
    private String birthday;

    /** 微博 */
    @Excel(name = "微博")
    private String weibo;

    /** 自定义字段的值 */
    @Excel(name = "自定义字段的值")
    private String remarkField;

    /** '加V时间' */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "'加V时间'", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** '更新时间' */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "'更新时间'", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** '删除时间' */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "'删除时间'", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deletedAt;

    /** 是否删除，0->未删除，null->删除 */
    @Excel(name = "是否删除，0->未删除，null->删除")
    private Integer hasDelete;

    /** 性别,0-未知 1-男性 2-女性 */
    @Excel(name = "性别,0-未知 1-男性 2-女性")
    private Integer gender;

    /** 企业 */
    @Excel(name = "企业")
    private String corpName;

    /** 客户ID */
    @Excel(name = "客户ID")
    private String customerId;

    /** UnionId */
    @Excel(name = "UnionId")
    private String unionId;

    /** openId */
    private String openId;

    /** 期数id */
    @Excel(name = "期数id")
    private Long schedulingId;

    /** 渠道用户id */
    @Excel(name = "渠道用户id")
    private Long channelId;

    /** 跟进状态：1-未扫码，2-未加V，3-已加V，4-已删友，5-重复加V */
    @Excel(name = "跟进状态：1-未扫码，2-未加V，3-已加V，4-已删友，5-重复加V")
    private String followStatus;

    /** 入群：1-未入群，2-入群，3-退群 */
    @Excel(name = "入群：1-未入群，2-入群，3-退群")
    private String joinGroup;

    private Date joinGroupTime;

    private Date lzTime;

    /** 课程权限：1-小白，2-进阶，3-高阶，4-三阶 */
    @Excel(name = "课程权限：1-小白，2-进阶，3-高阶，4-三阶")
    private Integer coursePermission;

    /** 加v方式：1-扫描二维码，2-获客链接 */
    @Excel(name = "加v方式：1-扫描二维码，2-获客链接")
    private String addWechatType;

    /** 昵称 */
    @Excel(name = "昵称")
    private String nickname;

    /** 头像 */
    @Excel(name = "头像")
    private String nicPic;

    /** 扫码时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "扫码时间", width = 30, dateFormat = "yyyy-MM-dd")
    private String scanCodeTime;

    /** 加V时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "加V时间", width = 30, dateFormat = "yyyy-MM-dd")
    private String addWechatTime;


    private Long planId;


    private Integer hasFriend;

    /** 企微自定义 */
    private String state;

    /** ip */
    private String ip;

    @TableField(exist = false)
    private Integer repeatCount;

    @TableField(exist = false)
    private String  planName;

    /** 主体id */
    @Excel(name = "主体id")
    private String corpId;

    public void setId(Integer id)
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }
    public void setExtCorpId(String extCorpId) 
    {
        this.extCorpId = extCorpId;
    }

    public String getExtCorpId() 
    {
        return extCorpId;
    }
    public void setExtCreatorId(String extCreatorId) 
    {
        this.extCreatorId = extCreatorId;
    }

    public String getExtCreatorId() 
    {
        return extCreatorId;
    }
    public void setExtCustomerId(String extCustomerId) 
    {
        this.extCustomerId = extCustomerId;
    }

    public String getExtCustomerId() 
    {
        return extCustomerId;
    }
    public void setExtStaffId(String extStaffId) 
    {
        this.extStaffId = extStaffId;
    }

    public String getExtStaffId() 
    {
        return extStaffId;
    }
    public void setAge(Long age) 
    {
        this.age = age;
    }

    public Long getAge() 
    {
        return age;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }
    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }
    public void setPhoneNumber(String phoneNumber) 
    {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() 
    {
        return phoneNumber;
    }
    public void setQq(String qq) 
    {
        this.qq = qq;
    }

    public String getQq() 
    {
        return qq;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setBirthday(String birthday) 
    {
        this.birthday = birthday;
    }

    public String getBirthday() 
    {
        return birthday;
    }
    public void setWeibo(String weibo) 
    {
        this.weibo = weibo;
    }

    public String getWeibo() 
    {
        return weibo;
    }
    public void setRemarkField(String remarkField) 
    {
        this.remarkField = remarkField;
    }

    public String getRemarkField() 
    {
        return remarkField;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }
    public void setDeletedAt(Date deletedAt) 
    {
        this.deletedAt = deletedAt;
    }

    public Date getDeletedAt() 
    {
        return deletedAt;
    }
    public void setHasDelete(Integer hasDelete) 
    {
        this.hasDelete = hasDelete;
    }

    public Integer getHasDelete() 
    {
        return hasDelete;
    }
    public void setCorpName(String corpName)
    {
        this.corpName = corpName;
    }

    public String getCorpName() 
    {
        return corpName;
    }
    public void setCustomerId(String customerId) 
    {
        this.customerId = customerId;
    }

    public String getCustomerId() 
    {
        return customerId;
    }
    public void setUnionId(String unionId) 
    {
        this.unionId = unionId;
    }

    public String getUnionId() 
    {
        return unionId;
    }
    public void setSchedulingId(Long schedulingId) 
    {
        this.schedulingId = schedulingId;
    }

    public Long getSchedulingId() 
    {
        return schedulingId;
    }
    public void setChannelId(Long channelId) 
    {
        this.channelId = channelId;
    }

    public Long getChannelId() 
    {
        return channelId;
    }
    public void setFollowStatus(String followStatus) 
    {
        this.followStatus = followStatus;
    }

    public String getFollowStatus() 
    {
        return followStatus;
    }
    public void setJoinGroup(String joinGroup) 
    {
        this.joinGroup = joinGroup;
    }

    public String getJoinGroup() 
    {
        return joinGroup;
    }
    public void setAddWechatType(String addWechatType) 
    {
        this.addWechatType = addWechatType;
    }

    public String getAddWechatType() 
    {
        return addWechatType;
    }
    public void setNickname(String nickname) 
    {
        this.nickname = nickname;
    }

    public String getNickname() 
    {
        return nickname;
    }
    public void setNicPic(String nicPic) 
    {
        this.nicPic = nicPic;
    }

    public String getNicPic() 
    {
        return nicPic;
    }
    public void setScanCodeTime(String scanCodeTime)
    {
        this.scanCodeTime = scanCodeTime;
    }

    public String getScanCodeTime()
    {
        return scanCodeTime;
    }
    public void setAddWechatTime(String addWechatTime)
    {
        this.addWechatTime = addWechatTime;
    }

    public String getAddWechatTime()
    {
        return addWechatTime;
    }

}
